home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The 640 MEG Shareware Studio 5
/
The 640 Meg Shareware Studio CD-ROM Volume V (Data Express)(1994).ISO
/
amiga
/
tdemo2.lha
/
ProgrammersInfo
/
Headers.h
< prev
next >
Wrap
C/C++ Source or Header
|
1994-06-05
|
27KB
|
924 lines
//**********************
//***** Includes *****
//**********************
#include "exec/types.h"
//*************************
//*************************
//*************************
//***** Struct User ***** FiLE: Accounts.Data
//*************************
//*************************
//*************************
struct User
{
UWORD Slot_Number; // Account#
UBYTE Status; // 0=Deleted, 1=Active, 2=New User, 3=Locked Out
TEXT Name[31], // Users Name
RealName[26], // Real Name
VoicePhone[21], // Voice Phone Number
DataPhone[21], // Data Phone Number
Address[26], // Address
City[26], // City
State[4], // State/Providence Code
Country[4], // Country Code
MailRoute[15], // Zip Code / Mail Route
ComputerType[21], // Computer Type (Possible Code Instead)
Password[16], // Password
Comment[31]; // Comment String
UBYTE Security; // Access Level
UWORD WeedDays, // Days of inactivity until bbs auto deletes
ReduceDays; // Days Paid for by a payer.
UBYTE ReducedAccess; // Preset level to give to user after reduced days
UBYTE AnsiType, // Ansi Type (Ascii, Amiga Ansi, IBM Ansi, VT100, RIP)
U_Proto, // Protocal Selected:UBYTE= 0-255 value
D_Proto, // download protocal
HelpLevel, // Level of Help
MSGHeader, // Msg Header Type
EditorLines, // Max Lines allowed in Editor
DescLines, // File Listing lines, Descriptions
ViewMode, // File Listing View Mode
WhoPrefs, // Who Preferences
MB_J, // Message Rejoin
FB_J, // File rejoin
Length, // Length of screen
Width, // Width of screen
Language,
Translation,
TimeZone, // Time Zone Offset
BirthDate_Day, // DAY of birth
BirthDate_Month, // MONTH of birth
BirthDate_Year, // YEAR of birth
IdleTime, // Idle time allowed for no activity
NodeLastOn; // Last node user was on
UWORD ForwardMailSlot, // Slot Number of user to forward mail to!
PWF; // Number of Password Failures
UWORD Total_Calls, // # of Calls Total
Total_Posts, // Msgs left total
Total_PostsReceived, // Msgs Received
Total_ULFiles, // # of Uploads
Total_DLFiles, // # of Downloads
Total_TimeBank; // Time Bank Value
ULONG Total_ULBytes, // Total Uploaded Bytes
Total_DLBytes; // Total Downloaded Bytes
UWORD Limit_Calls, // Calls ALLOWED per Day
Limit_Posts, // Messages Allowed p/d
Limit_ULFiles, // # of Uploads Per Period
Limit_DLFiles, // # of Downloads Per Period
Limit_Time, // Time Limit per day.
Limit_TimeBank,
Limit_ChatTime; // Limit of Time user can be in chat door
ULONG Limit_ULBytes, // Limit Upload Bytes Per Period
Limit_DLBytes; // Limit Download Bytes Per Period
UBYTE F_Ratio, // File Ratio
B_Ratio; // Byte Ratio
UBYTE Period_Type; // Mins, Hours, Days, Weeks, Months, Years
UWORD Period_Length, // 24 hours or whatever! Set Limits by Period
Period_Calls, // Calls made Today
Period_Posts, // Todays Msgs Sent
Period_ULFiles, // Todays Ul's
Period_DLFiles, // Todays Dl's
Period_ChatTime; // Time user has been in chat this period
ULONG Period_ULBytes, // Period Bytes Uploaded
Period_DLBytes; // Period Bytes Downloaded
UWORD Left_DLFiles, // Files left available for download
Left_ChatTime, // Limit of Time user can be in chat door
Left_Time; // Time Left
ULONG Left_DLBytes; // Bytes left for this period
UWORD DayCredits, // For Payers
FileCredits; // Files Paid for by a payer.
ULONG ByteCredits, // Bytes Paid for by a payer.
PersonalBytes, // Personal Area Bytes Limit
LastBaudRate; // Last Baud Rate of a user.
LONG Time_First_Called, // Time First Logged On
Time_Last_Logoff, // Last Time LOGGED OFF
Time_Last_Connect; // Time last CONNECTED
LONGBITS UserBitsA, //
UserBitsB, //
UtilBits, // 32 bits for Programmers to use as they wish for utils.
LastCallFlags, // Flags for activities during last call. Posted,UL,DL,etc
CatFlags, // Flags for Custom File Listing
NFlags1, // Normal Flags Part 1
NFlags2, // Normal Flags Part 2
SFlags1, // Sysop Flags Part 1
SFlags2; // Sysop Flags Part 2
char MsgBase[41], // MB 0-39 Flags N,Y,S // Change to 2 LONGBITS
FileBase[41]; // FB 0-39 Flags N,Y,S // one for normal, one for sysop
UWORD Last_Read_Message[40], // -position change- Last read pointer
Last_Scan_Message[40];
BYTE BExtras[30];
UWORD CheckSum,
SerialNumber; // Unique seiral number for flagged files, etc.
SHORT SExtras[3];
LONG LExtras[3];
};
struct Csum
{
UWORD Csum;
};
//*******************************
//*******************************
//*******************************
//***** Struct SystemData ***** FiLE: SystemData.Data - (GLOBAL SETTINGS!)
//*******************************
//*******************************
//*******************************
struct SystemData
{
// System Names / Locations
TEXT Name[31], // Name of BBS System
Location[51], // Location of BBS System
SysopName[31], // Sysop's Name
// System Paths
AccountDataPath[81], // Path to Accounts.data
AccountInfoPath[81], // Path to User Info Files
CatalogsPath[81], // Path to Catalog files
ExtendedDescPath[81], // Path to extended descriptions
LogsPath[81], // path for Log & transcript
OptionalDirPath[81], // Path to Optional Dir
SetupDirPath[81], // Path to Master Setup Directory
SysopHoldPath[81], // sysop hold dir
ResumeDirPath[81], // send partial files to
DoorsPath[81], // Door Path
ModulesPath[81], // Modules Path
VoteBoothPath[81], // Path to voting booth area
// Passwords
LocalAccessPassword[21], // Password: Local Access (Sysop/Local Logins)
SysopCmdsPassword[21], // Password: Sysop Commands
NewUserPassword[21], // Password: New User's to apply
SystemEntryPassword[21], // Password: Users to enter system
// Scripts
LocalShell[101], // command to launch local cli
DropToShell[101], // command to drop to dos.
FontName[31], // Font Name
RemoteShellPassword[21], // Password: Local Shell Access
LocalLogonPassword[21], // Password: Local Logon Password
ScriptsPath[81], // Path to Tempest Scripts
PresetD[16][26], // Descriptions of Presets
BadArchivesPath[81], // Path where bad archives are stored!
IconSize[21], // 0 0 500 10 icon window
CHAR_Extra[2359];
//________________________________________________________________________
UBYTE LockViewMode, // View mode to lock users into
Chat_H, // Chat Color for USER
Chat_M, // Chat Color for SYSOP
ULRewardP_Time, // Percentage of time gained for uploads
MaxPages, // Maximum time user can page sysop per call
WindowToFront, // window to front
SystemFlags[120],
ULRewardP_DLCredits, // Download Credits for a day for uploads
UBYTE_Extras[99];
//________________________________________________________________________
WORD NumberOfLines, // Total Number of Nodes
WORDExtras[40];
//________________________________________________________________________
int FontSize, // 8: Defualt
MaxUsers, // Maximim User's allowed on system
INT_Extras[30];
//________________________________________________________________________
long LowFreeSpace, // Low point for warning of low harddrive space
NoFreeSpace, // Required harddrive space for uploads
MaxSizeViewText, // Max size of a file that can be viewed
// with online view text file command.
SystemFlags1, // System Flags (32 Flags) #1
SystemFlags2, // System Flags (32 Flags) #2
SystemFlags3, // System Flags (32 Flags) #3
SystemFlags4, // System Flags (32 Flags) #4
SystemFlags5, // System Flags (32 Flags) #5
SystemFlags6, // System Flags (32 Flags) #6
SystemFlags7, // System Flags (32 Flags) #7
SystemFlags8, // System Flags (32 Flags) #8
SystemFlags9, // System Flags (32 Flags) #9
LONG_Extras[30];
};
//*******************************
//*******************************
//*******************************
//***** Struct NodeData ******* FiLE: NodeData-x.Data - (PER NODE SETTINGS!)
//*******************************
//*******************************
//*******************************
struct NodeData
{
// Node Paths
TEXT TempULWorkPath[81], // Send file while uploading
TextDirPath[81], // Path to Text Directory
DescribeDirPath[81], // Path to Describe Directory
IconSize[21], // 0 0 500 10 icon window
// Modem Information
DeviceName[81], // serial.device
Open[61], // Modem INIT string
Reset[31], // Hangup/reset string
Ring[31], // RING DETECTED string
Answer[31], // What to do when a ring
Busy[31], // to make the modem off-hook
OnHook[21], // to make modem on-hook
Escape[21], // to get modems attention
// Scripts
NotUsed1[51], // Not Used
NotUsed2[51], // Not Used
NodePassword[21], // Password for this node!
CHAR_Extra[2979];
//________________________________________________________________________
UBYTE LocalMode, // 0: Serial routines active 1:View Mode
Serial_Shared, // 0: Normal, 1: Open in shared mode
Auto_Iconify, // 0: open normal 1: open into icon
Hide_Node, // 0: normal 1: hide screen completly
DTR, // 1: dtr drop, 0 Nope use +++, but DTR only works on the internal serial prt
Wire_Mode, // 0: 7 wire 1: 4 Wire mode
XON, // Xon/Xoff 0: off 1:on
RAD_BOG, // Rad_boggie 0: off 1:on
BackGround, // BBS screen to back ground
FORCE, // 0:Empty file 1:Raw Window
Parse, // 0:Parse 1:quick
FILEPROMPT, // 0:3 command prompt 1:pick area
FLUSH, // 0: Normal 1:FLUSH SERIAL
FUNCTION, // DEAD!
TIMEOT, // 30(Defalut) for hangu[p on incomming call
CallersLogStatus,
CaptureLogStatus,
DoorsLogStatus,
DebugLogStatus,
SysopLogStatus,
Define[119], // Define Flags
NTSCPAL, // 0= NTSC, 1=PAL
HIGHRES, // Interlace Mode (1)
OVERSCAN, // Full OverScan Mode (1)
HALFSCREEN, // Half Screen Mode (1)
Sleeplogoff, // Time before sleep logoff - was Define[41]
MsgLogStatus,
TransferLogStatus,
CaptureFilter, // Capture Filter On/Off
MinAccessLevel, // Minimum access level to logon to this node.
LoadedLanguage, // Current Loaded Lanugage
BYTE_Extras[91];
//________________________________________________________________________
WORD CurrentNode, // Current Node #
WORDExtras[40];
//________________________________________________________________________
int SerialDeviceNumber, // serial device unit # (ULONG)
BitPlanes, // Bit Planes
BBSPriority, // Normal Priority
FileTransferPriority, // File Trasfer Priority
Fixed_Link, // Fixed or Variable DTE Rate
FrontEnd, // Front End Flag
DoorsPriority, // Doors Priority
INT_Extras[28];
//________________________________________________________________________
long HighestBaudRate, // Highest BAUD RATE / DTE Rate
MinBaudRate, // Minimum Baud Rate
NodeFlags1, // Node Flags (32 Flags) #1
NodeFlags2, // Node Flags (32 Flags) #2
NodeFlags3, // Node Flags (32 Flags) #3
NodeFlags4, // Node Flags (32 Flags) #4
NodeFlags5, // Node Flags (32 Flags) #5
NodeFlags6, // Node Flags (32 Flags) #6
NodeFlags7, // Node Flags (32 Flags) #7
NodeFlags8, // Node Flags (32 Flags) #8
LONG_Extras[30];
};
//******************************
//******************************
//******************************
//***** Struct File_Area ***** FiLE: Files.data
//******************************
//******************************
//******************************
struct File_Area
{
TEXT Name[31], // Name of Area
What[41], // Description of Area
Path[51], // Path
Password[21], // Password to enter.
EChar[50];
BYTE DelMonths, // Deletion Months, 0 = Disabled.
ON, // On/Off Switch
Sex, // Sex Type Allowed (M,F,B)
EBYTE[20];
UBYTE AccessLevel, // Minimum Access Level Required
Area,
MinAge,
MaxAge,
ULTimeReward, // Upload Time Reward Percentage.
DLTimeReward, // Download Time Reward Percentage.
DLBonusReward, // Reward given to upload for every download of his UL's
FileIDDetection,// FileID Detection On/Off per area
FileIDCreation, // FileID Creation On/Off per area
Allow, // 0=All, 1=Upload only, 2=Download Only, 3=None
EUBYTE[17];
WORD RollOver,
WExtras[4];
int Eint[4];
long ELong[5];
LONGBITS Flags,
Flags2;
};
#define FA_FREEDL 0x00000002 // All files are free donwload?
//*****************************
//*****************************
//*****************************
//***** Struct Msg_Area ***** FiLE: Messages.data
//*****************************
//*****************************
//*****************************
struct Msg_Area
{
TEXT Name[31], // Name of Area
What[41], // Description of Area
Path[51], // Path
Password[21], // Password
EChar[50];
BYTE ON, // On/Off Switch
Sex, // Sex Type Allowed (M,F,B)
EBYTE[20];
UBYTE AccessLevel, // Minimum Access Level Required
Area, // Area Number
MinAge, // Minimum Age to enter
MaxAge, // Maximum Age allowed to enter
Allow, // 0 = All, 1=Private Only, 2=Public Only, 3=Aynonoums Only
EUBYTE[19];
WORD RollOver,
WExtras[4];
int Eint[4];
long ELong[5];
LONGBITS Flags,
Flags2;
};
#define MA_ALLOWANON 0x00000001 // Allow Anonymous Msgs
#define MA_ALLOWULSEND 0x00000001 // Allow Msgs to be uploaded
//***********************
//***********************
//***********************
//***** Node_Info ***** FiLE: NodeInfo_x
//***********************
//***********************
//*********************** // Add a ton more extra pointers next upgrade.
struct node_info
{
char *activity; // Activity field of user's activity
char *chatbuffer; // Buffer for Chat doors
char *chatmsgbuffer; // Buffer for Msg's in chat doors
char *charextra3;
// char *Cextra1; char *Cextra2; char *Cextra3; char *Cextra4; char *Cextra5;
// char *Cextra6; char *Cextra7; char *Cextra8; char *Cextra9; char *Cextra10;
BYTE *AN; // Activity Number of user's activity
BYTE *hide; // Hide from Who Door
BYTE *aborttransfer; // Abort user's transfer
BYTE *kickuser; // Kick user offline
// BYTE *Bextra1; BYTE *Bextra2; BYTE *Bextra3; BYTE *Bextra4; BYTE *Bextra5;
// BYTE *Bextra6; BYTE *Bextra7; BYTE *Bextra8; BYTE *Bextra9; BYTE *Bextra10;
// short *SExtra1; short *SExtra2; short *SExtra3; short *SExtra4; short *SExtra5;
// short *SExtra6; short *SExtra7; short *SExtra8; short *SExtra9; short *SExtra10;
int *mode;
int *baudrate; // Buad Rate of user online
int *shutdown; // ShutDown Flag 0=No , 1=Yes.
int *chatroom; // Chat room Number
int *frontend; // Front End On/Off (0=off) (1=on)
int *frontendstatus; // Front End Status (0=Normal) (1=Sleep)
long *cps; // CPS Rate of user online doing transfer
long *fileshouldbe;
long *timelimit;
long *longextra3;
struct User *UserInfo;
struct SystemData *SystemDataInfo;
struct NodeData *NodeDataInfo;
struct Today *TodayInfo;
struct Iconify *IconInfo;
struct Editor *EdInfo;
struct Screen *screen1Info;
struct Window *windowInfo, *StatusPaneInfo, *iconInfo, *abortwindowInfo;
struct IOExtSer *WriteSerReqInfo, *ReadSerReqInfo;
struct IOStdReq *WriteConReqInfo, *ReadConReqInfo;
struct IOStdReq *StatWriteReqInfo;
struct MsgPort *WriteSerPortInfo, *ReadSerPortInfo, *TimerPortInfo;
struct MsgPort *WriteConPortInfo, *ReadConPortInfo;
struct MsgPort *StatWritePortInfo;
struct timerequest *TimerMsgInfo;
struct Msg_Area *MSGInfo;
struct File_Area *FILESInfo;
struct RATES *RATESInfo;
struct R_SLOTS *R_SLOTSInfo;
struct Questions *QuestionsInfo;
struct Runtimeinfo *RI;
};
//****************************
//***** Struct Letters ***** FiLE:
//****************************
struct Letters
{
TEXT Receiver [31],
Sender [31],
Subject [31],
Password [9];
long Sent,
Rcvd;
int Number, /* the number of the actuall message */
MsgArea, /* what area the message was written in */
Delete, /* Delete 0:OK 1:DELETED */
Reply, /* This message was replied from */
Ano, /* 0: normal 1:Quit Sender */
Read, /* Times the message has been read */
Status, // 0=Private 1=Public 2=Password 3=Priority
// 4=Fowarded Mail
ForceReply, /* 0: na 1: get a reply */
Locked; /* 0: na kill it if needed 1:Keep it */
};
//**************************
//***** Today Struct ***** FiLE: Runtime.data
//**************************
struct Today
{
TEXT NMName[35], // Name who sent message to next caller
extra[40];
UWORD CBAUD[20], // 300,1200,2400,4800,7200,9600,12000,14400,16800,19200,28800
AbortedDl,
AbortedUl,
UpRes,
DLRes,
Users,
Uploads,
Downloads,
Feedback,
New,
Messages,
F_Sysop;
int Calls,
NMAno,
BBSNumbers,
Busy,
extra2,
extra3,
Total;
long dl_bytes,
ul_bytes,
NMDate,
TODAY,
L_ext1,
L_ext2,
connected;
TEXT Last[31]; // Last Caller on BBS
UWORD CurrentUser;
TEXT Reserved[31]; // Reserved Caller
TEXT ExtraNotUsed[164];
};
//*******************
//***** Rates ***** FiLE: Baud-x.data (x=Node)
//*******************
struct RATES
{
int NewBaud,
UPLOAD[25],
DOWNLOAD[25],
HOUR[25];
};
//****************************
//***** Presets Struct ***** FiLE: Presets.Data
//****************************
struct Defaults
{
char MB[41],
FB[41];
UBYTE Security,
F_Ratio,
B_Ratio,
IdleTime,
ViewMode;
UWORD DayCredits,
FileCredits,
WeedDays,
ReduceDays,
ReducedAccess;
UWORD Limit_Calls,
Limit_Posts,
Limit_ULFiles,
Limit_DLFiles,
Limit_Time,
Limit_TimeBank,
Limit_ChatTime;
ULONG Limit_ULBytes,
Limit_DLBytes;
UWORD Total_ULFiles,
Total_DLFiles;
ULONG Total_ULBytes,
Total_DLBytes,
ByteCredits,
PersonalBytes;
LONGBITS NFlags1,
NFlags2,
SFlags1,
SFlags2,
CatFlags;
char CExtra[110];
UBYTE UBExtra[50];
UWORD UWExtra[25];
ULONG ULExtra[12];
};
//*******************************
//***** Flag Files Struct *****
//*******************************
struct FLAG
{
TEXT FileName[13];
BYTE Area;
int Number;
ULONG Bytes;
BYTE COST; // 0=Normal , 1=Free
BYTE EBYTES[8];
};
//****************************
//***** Catalog Struct ***** FiLE: Catalog.x
//****************************
struct Catalogs
{
TEXT FileName[13],
Password[4],
DateU[9],
LastDateD[9],
Uploader[31],
Receiver[31]; // Only Used in F-Mail - Area 0.. Have 2 structs
BYTE Security; // 1 = Public, -1 = Sysop, -2 = UnVal, -3 = BadArchive
UBYTE Access;
// 0x01 0x02 0x04 0x08 0x10 0x20 0x40 0x80
BYTEBITS Flags; // Active,Free,ExtDesc,DLock,ELock,HDOnline,ArcTest- 8 Togglable Bits
ULONG Bytes; // Filesize
TEXT Line[12][45];
};
struct UP_G
{
TEXT FileName[13],
Password[4],
DateU[9],
LastDateD[9],
Uploader[31],
Receiver[31]; // Only Used in F-Mail - Area 0.. Have 2 structs
BYTE Security;
UBYTE Access,
Area;
// 0x01 0x02 0x04
BYTEBITS Flags; // Active,Free,ExtDesc; --- 8 Togglable Bits
ULONG Bytes;
TEXT Line[12][45];
};
struct STACK
{
char Command[40];
};
struct Indx
{
int Active,
FirstMsgNumber,
LastMsgNumber,
LastMsgSlot;
};
struct R_SLOTS
{
int T_0,
T_15,
T_30,
T_45;
};
// 'Questions.data'
struct Questions
{
char ASK [15] [60];
int ResponseLines[15];
};
// the 'Keys.data' file
struct F_KEYS
{
int Online[21],
Offline[21];
};
// Internal BBS USE ONLY
struct Editor
{
int Sec,
Opt, // Optional Flag #, user must have access to.
OptType, // Normal or Sysop Flags
Msg,
File,
Cur;
char Typed[200],
Command[256],
Execute[256];
};
// Internal BBS USE ONLY
struct Iconify
{
BYTE Iconfied, // 0:nope 1:yep
Chat; // 0: nope 1:tried to chat
ULONG Baud; // speed of user
TEXT Name[35], // the user online
Node_Number[3], // the node/port #
Last_Area[20], // current area of BBS
Last_Command[30], // Last Command Entered
Last_TextFile[35]; // last txt file
};
/*
Filename sent for the external protocol to pick up.
T:ProtoConfig_# <- the # indicates the node number
CLI CALL > Zmodem 1
this tells the proto driver zmodem to load the stats for the config
for node #1.
*/
struct protostats
{
TEXT Config[50], /* The commands of the driver */
UploadArea[255], /* the Work Area */
LogPath[255],
SerialDevice[50],
KnownFileName[50],
OptionPath[255], /* to get the .opt files */
BBSPATH[255],
ex_strings[5][255];
int Mode, /* 0: Dl, 1:ul */
Iconify, /* Icon.. 0:no 1:yes */
Priority,
UnitNumber, /* the serial unit # */
ex_ints[10];
ULONG User_Speed, /* The baud rate for the user online's info */
FreeSpace, /* space need to be free on drive */
ex_ulongs[10];
};
/* the struct to tell the protocol what files are to be downloaded */
struct Down_Load
{
TEXT File[255],
FileName[13],
ex_string[187];
int Area,
Cost,
FileNumber,
ex_ints[9];
long Bytes,
ex_longs[10];
};
/* the protocol, fills in these stats about each file downloaded so the bbs
knows what happened, and how to charge the user for the downloads
*/
struct DownLoad_Status
{
TEXT File[255],
ex_strings[5][255];
int Cost, // 1: Free dl, 0: charge normal
Area,
Good,
Errors,
Mins,
Secs,
FileNumber,
ex_ints[7];
long First_Byte_Sent,
Last_Byte_Sent,
Bytes_To_Charge,
Files_To_Charge,
CPS,
FileSize,
Seconds,
ex_longs[9];
};
struct Name // Accounts Index File
{
char Username[31];
};
struct msgpassing
{
int REPLYNUMBER,
TYPE,
STATUS,
AREA;
char RECEIVER[31],
SUBJECT[31];
};
struct prom
{
TEXT prompts[35][255];
};
struct passe
{
int val1,val2,val3,val4,val5;
char te[20],te1[20];
long vt[15];
char str[10][80];
};
struct UploadXPR
{
TEXT Name[40],
Lib[40],
Config[40],
Unknown[10],
BBSMODE[10];
};
struct DownloadXPR
{
TEXT Name[40],
Lib[40],
Config[40],
Unknown[10],
BBSMODE[10];
};
struct L
{
char LINE[185];
};
struct LL
{
char LINE[50];
};
struct g
{
ULONG number;
TEXT com[16][255];
};
struct TempMessage
{
struct Message Msg;
int Command;
int Node;
int Data;
struct User *UserInfo;
struct NodeData *NodeDataInfo;
struct Today *TodayInfo;
};